layui.extend({ //设定组件别名
	soulTable: '/statics/libs/layuiExt/soulTable/soulTable',
	tableChild: '/statics/libs/layuiExt/soulTable/tableChild',
	tableMerge: '/statics/libs/layuiExt/soulTable/tableMerge',
	tableFilter: '/statics/libs/layuiExt/soulTable/tableFilter',
	excel: '/statics/libs/layuiExt/soulTable/excel',
    locals: '/statics/libs/layuiExt/localsession/locals'
});
//对象数组的去重
function uniqObjInArray(objarray) {
	let len = objarray.length;
	let tempJson = {};
	let res = [];
	for (let i = 0; i < len; i++) {
		//取出每一个对象
		tempJson[JSON.stringify(objarray[i])] = true;
	}
	let keyItems = Object.keys(tempJson);
	for (let j = 0; j < keyItems.length; j++) {
		res.push(JSON.parse(keyItems[j]));
	}
	return res;
}
// 普通数组去重
function uniqueArr(arr){
    return Array.from(new Set(arr));
}

// 获取pageName
function getPageName(){
	var pathname = window.location.pathname;
	if(pathname == "/"){
		return 'monitor'
	}else{
		return pathname.split('/')[1]
	}
}

function initMenu() {
	$(".navbar-nav li").each(function () {
		var authCode=$(this).attr("auth");
		if(!hasAuth(authCode)){
			$(this).hide();
		}
	});
}
function hasAuth(authCode) {
	var authArray=authStr.split(",");
	if(authArray&&authArray.length>0){
		for(var i=0;i<authArray.length;i++){
			if(authArray[i].trim()==authCode){
				return true;
			}
		}
	}
	return false;
}

//导航高亮
function navActive() {
	var pathname = window.location.pathname;
	var activeNav = $("#mynav li a[href='"+ pathname +"']");
	activeNav.parent("li").addClass("active");
}
//当天日期，格式：2019-01-01
function formatToday() {
	var date = new Date();
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	m = m < 10 ? ('0' + m) : m;
	var d = date.getDate();
	d = d < 10 ? ('0' + d) : d;
	return y + '-' + m + '-' + d;
};

//当天日期，格式：2019-01-01
function formatYesterday() {
	var date = new Date();
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
	if(d!=1){
         d = date.getDate() - 1;
    }
	d = d < 10 ? ('0' + d) : d;
	return y + '-' + m + '-' + d;
};

//当月1号日期，格式：2019-01-01
function format01day() {
	var date = new Date();
	var y = date.getFullYear();
	var m = date.getMonth() + 1;
	m = m < 10 ? ('0' + m) : m;
	var d = "01";
	return y + '-' + m + '-' + d;
};

//数组求和
function sumArray(array){
	var sum = 0;
	array.forEach(function(val,index,array){
		sum += val;
	});
	return sum;
}
//初始化日期，X号之前向前推n天，X号以后默认当月1号
function initStartDate(x, n) {
	x = x || 3;
	n = n || 3;
	var today = new Date();
	var preDate;
	var dd = today.getDate();
	if (dd <= x) {
		preDate = new Date(today.getTime() - n * 24 * 60 * 60 * 1000); //前n天
	} else {
		preDate = new Date(today.getTime() - (dd - 1) * 24 * 60 * 60 * 1000); //当月1号
	}
	return preDate;
}

// 截取产线名称  DES线A线 ==> A线
function cutName(linename){
    return linename.substring(linename.length - 2);
}

//定义一个函数:数组中是否包含某个值
// 包含返回false  不含返回true
function exist(num, arr) {
    for (var j = 0; j < arr.length; j++) {
        if (num === arr[j]) {
            return false; //如果传过来的元素在arr1中能找到相匹配的元素，我们返回fasle
        }
    }
    return true; //如果不能找到相匹配的元素，返回true
}

// 数组对象按某个属性排序
function sortArrObj(property){
    return function(a,b){
        var value1 = a[property];
        var value2 = b[property];
        return value1 - value2;
    }
}

/* 返回html元素的最长width
*  @param elm ： 元素
* */
function getLongestWidth(elm){
    let nameLen = [];
    for (let i = 0; i < elm.length; i++) {
        nameLen.push(Math.ceil($(elm[i]).width())+1)
    }
    return Math.max.apply( null, nameLen )
}

/* 计算每个月有多少天 */
function getAMonthDays(year, month) {
    var days = new Date(year, month, 0).getDate();
    return days
}

// 顶部跑马灯-扩展方法
$.fn.myMaquee = function(options){
    //默认配置
    var defaults = {
        speed: 100,  //滚动速度,值越大速度越慢
        rowHeight:24 //每行的高度
    };
    var opts = $.extend({}, defaults, options),
        intId = [];
    function marquee(obj, step){
        obj.find("ul").animate({
            marginTop: '-=1'
        },0,function(){
            var s = Math.abs(parseInt($(this).css("margin-top")));
            if(s >= step){
                $(this).find("li").slice(0, 1).appendTo($(this));
                $(this).css("margin-top", 0);
            }
        });
    }
    this.each(function(i){
        var sh = opts["rowHeight"],speed = opts["speed"],
            _this = $(this);
        intId[i] = setInterval(function(){
            if(_this.find("ul").height()<=_this.height()){
                clearInterval(intId[i]);
            }else{
                marquee(_this, sh);
            }
        }, speed);
        _this.hover(function(){
            clearInterval(intId[i]);
        },function(){
            intId[i] = setInterval(function(){
                if(_this.find("ul").height()<=_this.height()){
                    clearInterval(intId[i]);
                }else{
                    marquee(_this, sh);
                }
            }, speed);
        });
    });
};

/* select 多选
* 返回 基础配置
* */
function xmselectConf(){
    return {
        language: 'zn',
        size: 'small',
        theme: {
            color: '#0095e3',
        },
        toolbar: {
            show: true,
            showIcon: false,
            list: [ 'ALL', 'CLEAR', 'REVERSE' ]
        },
        model: {
            label: {
                type: 'text',
                //使用字符串拼接的方式
                text: {
                    // 左右拼接的字符
                    left: '',
                    right: '',
                    separator: ',',  //中间的分隔符
                }
            }
        }
    }
}
/* 打印插件 基础配置项*/
function printConfig(){
    return {
        globalStyles: true,//是否包含父文档的样式，默认为true
        mediaPrint: false,//是否包含media='print'的链接标签。会被globalStyles选项覆盖，默认为false
        stylesheet: null,//外部样式表的URL地址，默认为null
        noPrintSelector: ".no-print",//不想打印的元素的jQuery选择器，默认为".no-print"
        iframe: true,//是否使用一个iframe来替代打印表单的弹出窗口，true为在本页面进行打印，false就是说新开一个页面打印，默认为true
        append: null,// 将内容添加到打印内容的后面
        prepend: null,//将内容添加到打印内容的前面，可以用来作为要打印内容
        deferred: $.Deferred()// 回调函数
    }
};